# 运算符 条件判断 类型转换

# 运算符

  • 算术运算符:+-*/~/(取整)、%(取余)
  • 关系运算符:==!=><>=<=
  • 逻辑运算符:!&&||
  • 赋值运算符:
    • 基础赋值运算符:=??=(运算符坐标为空的话,就把右边值赋给左边标识符,不为空则不作任何操作。int num=10;num??==30;此时num=10;)
    • 复合赋值运算符:+=-=*=/=%=~/=
    • 自增、自减:++--,写在前面先运算再赋值;卸载后面先赋值后运算。

# 条件判断

  • ifelse ifelse
main(){
    var score = 87;
    if(score>90){
       print('优秀');
    }else if(score>60){
       print('及格');
    }else{
       print('不及格');
    }
}
  • switch-case
main(){
    var sex = '女';
    switch(sex){
        case '男':print('男生');break;
        case '女':print('女生');break;
        default:print('未知性别');break;
    }
}
  • 三目运算符
main(){
    var score = 87;
    if(score>60){
       print('及格');
    }else{
       print('不及格');
    }

    // ↓

    print(score>60:'及格':'不及格');
}
  • ??运算符
main(){
    var a;
    var b = a ?? 10;
    print(b);//10

    var a1 = 22;
    var b2 = a2 ?? 10;
    print(b2);//22
}

# 类型转换

Number与String之间数据类型转换

  • Number -> String : toString()
  • String -> Number : parse()
main(){
    var a = 22;
    var b = a.toString();//'22'
    print(b is String);//true

    var a2 = '30';
    var b2 = int.parse(a2);// 30
    print(b2 is int);//true
}

数据类型转换时易发生异常,异常捕捉try-catch:

main(){
    try{
        var a;
        var b = a.toString();
        print(b is String);
    }catch(err){
       print(err);
    }

}

判断是否为空:

  • isEmpty判断字符串是否为空
  • ==null判空,未定义
  • .isNaN判断是否为NaN,比如被除数为0